perm filename SAILIO.SAI[PNT,HE]1 blob
sn#367368 filedate 1978-07-13 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 ENTRY
C00006 00003 ! aliasppn, loginppn
C00007 ENDMK
C⊗;
ENTRY;
BEGIN "SAILIO"
DEFINE ! = "COMMENT";
INTERNAL INTEGER PROCEDURE UGETF(INTEGER CHAN);
BEGIN
! EXTENDS THE FILE OPEN ON CHANNEL CHAN;
define UGETF = '073000;
INTEGER I,CHN; LABEL DOUGTF;
CHN←CHAN;
quick_code;
move '13,CHN;
lsh '13,5;
addi '13,UGETF;
hrlm '13,DOUGTF; ! PREPARE UGETF;
DOUGTF:
I ;
end;
RETURN(I);
END;
! get current record number;
INTERNAL INTEGER PROCEDURE UGET(INTEGER CHAN);
BEGIN
define MTAPE = '072000;
LABEL ADR,ADR1,DOMTPE; INTEGER CHN;
INTEGER GMOD; GMOD←CVSIX("GODMOD");
CHN←CHAN;
quick_code;
move '13,GMOD;
movem '13,ADR;
setzm '13,adr1;
move '13,CHN;
lsh '13,5;
addi '13,MTAPE;
hrlm '13,DOMTPE;
jrst DOMTPE ;
ADR:
0 ; ! '475744555744; ! SIXBIT /GODMOD/;
ADR1: 0 ;
DOMTPE:
ADR ;
move '13,ADR1;
movem '13,CHN;
end;
RETURN(CHN);
END;
INTERNAL INTEGER PROCEDURE FLOOKUP(INTEGER CHAN; STRING FILE);
BEGIN
INTEGER FLAG; STRING ERRMESS;
LOOKUP(CHAN,FILE,FLAG);
IF FLAG THEN
BEGIN
CASE FLAG←FLAG MOD 8 OF
BEGIN
[0] ERRMESS←"No such file";
[1] ERRMESS←"Illegal PPN";
[2] ERRMESS←"Protection violation";
[3] ERRMESS←"File is busy, currently in Read-Alter Mode";
[5] ERRMESS←"File was already opened for output on another channel";
ELSE ERRMESS←"This error no"&cvs(flag mod 8)&" should not happen"
END;
OUTSTR(CRLF&ERRMESS);
END;
RETURN(FLAG);
END;
INTERNAL INTEGER PROCEDURE FENTER(INTEGER CHAN; STRING FILE);
BEGIN
INTEGER FLAG; STRING ERRMESS;
ENTER(CHAN,FILE,FLAG);
IF FLAG THEN
BEGIN
CASE FLAG←FLAG MOD 8 OF
BEGIN
[0] ERRMESS←"Null filename given for write file";
[1] ERRMESS←"Illegal PPN given";
[2] ERRMESS←"Trying to write on a write protected file";
[3] ERRMESS←"File is currently being used";
[6] ERRMESS←"Different filename specified for ENTER and LOOPKUP";
ELSE ERRMESS←"Error number"&cvs(flag)&" shouldnt have occurred"
END;
OUTSTR(CRLF&ERRMESS);
END;
RETURN(FLAG);
END;
INTERNAL INTEGER PROCEDURE FLENTER(INTEGER CHAN; STRING FILE);
BEGIN
INTEGER FLAG;
IF FLAG←FLOOKUP(CHAN,FILE) THEN RETURN(FLAG);
FLAG←FENTER(CHAN,FILE); RETURN(FLAG);
END;
! aliasppn, loginppn;
SIMPLE STRING PROCEDURE ALIASPPN;
RETURN(CVXSTR(CALL(0,"DSKPPN")));
SIMPLE STRING PROCEDURE LOGINPPN;
RETURN(CVXSTR(CALL(0,"GETPPN")));
END "SAILIO";